import request from './request.js'
import { getToken, uuid } from '@/utils/auth'

/**
 * 根据自己公司的业务进行 post 请求方法的封装
 * @param {调用方法时传递的数据对象} obj
 * @returns
 */
export function post(obj) {
  const { url, params } = obj
  // 此处时我司后台请求数据时必须携带的参数header
  params.header = {
    msgId: uuid(),
    standAction: url.split('/')[url.split('/').length - 1],
    token: getToken()
  }
  console.log(params, 999)
  return new Promise((resolve, reject) => {
    request({
      url: url,
      method: 'post',
      data: params
    }).then(res => {
      // 请求成功时 返回一个成功的Promise
      resolve(res)
    }).catch(err => {
      // 请求出错时 返回一个失败的Promise
      console.log('POST-' + url + '-' + err)
      reject(err)
    })
  })
}

export function get(obj) {
  const { url, params } = obj
  const str = Object.keys(params || {}).map(key => {
    return encodeURIComponent(key) + '=' + encodeURIComponent(params[key])
  }).join('&')

  return new Promise((resolve, reject) => {
    request({
      url: url + '?' + str,
      method: 'get'
    }).then(res => {
      // 请求成功时 返回一个成功的Promise
      resolve(res)
    }).catch(err => {
      // 请求出错时 返回一个失败的Promise
      console.log('GET-' + url + '-' + err)
      reject(err)
    })
  })
}

// 上传文件
export function upload(obj) {
  console.log(obj, 11111)
  const { url, params } = obj
  // console.log(params, 888888)

  const formData = new FormData()

  Object.keys(params).forEach(key => {
    formData.append(key, params[key])
  })

  return new Promise((resolve, reject) => {
    request({
      url: url,
      method: 'post',
      data: formData
    }).then(res => {
      resolve(res)
    }).catch(err => {
      console.log('UPLOAD-' + url + '-' + err)
      reject(err)
    })
  })
}
